package br.sc.senai.control.managedbeans;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;


import br.sc.senai.model.dao.EntitiesDAO;


import br.sc.senai.model.entity.Locacao;
import br.sc.senai.model.exception.EntitiesDAOExcption;

/**
 * 
 * @author Dhyego Pedroso
 * @19/06/2013
  */

@ManagedBean(name = "LocacaoMB")
@RequestScoped
public class LocacaoMB<T> {

	EntitiesDAO<Locacao> locacaodao;

	private Locacao locacao = new Locacao();

	
	//Inserir objeto
	public boolean Insert() {

		boolean ok = false;
		try {
			locacaodao.add(locacao);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			System.out.println("Erro linha 40 "+ok);
			e.printStackTrace();
		}

		return ok;
	}
	
	//Retorna um objeto pelo ID
	public Locacao getById(int id){
		
		Locacao locacao = new Locacao();
		
		try {
			locacao = locacaodao.getById(id);
		} catch (EntitiesDAOExcption e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return locacao;
		
	}
	
	//Altera os atributos de um objeto.
	public boolean Alter(){
		
		boolean ok = false;
		
		try {
			locacaodao.update(locacao);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			e.printStackTrace();
		}
		return ok;
	}
	

	//Retorna uma lista com todos Objetos
	public List<Locacao> LoadAllLocacoes() {

		List<Locacao> retorno = null;

		try {
			retorno = locacaodao.loadAll();
		} catch (EntitiesDAOExcption e) {
			e.printStackTrace();
		}
		return retorno;
	}
	
	
	//Deleta um objeto passando o objeto inteiro.
	public boolean Del(){
		
		boolean ok = false;
		
		try {
			locacaodao.delete(locacao);
			ok = true;
		} catch (EntitiesDAOExcption e) {
			ok = false;
			e.printStackTrace();
		}
		
		return ok;
	}

	
	
	
	public Locacao getLocacao() {
		return locacao;
	}

	public void setLocacao(Locacao locacao) {
		this.locacao = locacao;
	}

}